解释的内容: 

1,报文帧的定义:

BO_  MessageId MessageName: MessageSize Transmitter

1）、BO_                                   为关键字，表示报文；

2）、MessageId                         报文ID，是以10进制数表示的；
（如例子中的996，代表报文ID为0x3E4，是longlong类型，也就是CAN ID的值；）

3）、MessageName                    报文的名字，命名规则和C语言变量相同；

4）、MessageSize                      报文数据域字节数，为无符号整型数据，CAN 2.0为最大8字节，CAN FD 最大64字节；

5）、Transmitter                          该报文的网络节点；如果该报文没有指定发送节点，则该值需设置为” Vector__XXX”。

2,信号的定义:

SG_ SignalName (SigTypeDefinition) : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
1）、SG_                                                                为关键字，表示信号；

2）、SignalName(SigTypeDefinition) :                    表示该信号的名字 和 多路选择信号的定义；

2.1） SigTypeDefinition是可选项，有3种格式：
            a）空，表示普通信号。
            b）M，表示多路选择器信号。
            c）m50，表示被多路选择器选择的信号，50，表示当M定义的信号的值等于50的时候，该报文使用此通路。

3）、StartBit、 SignalSize                                  表示该信号起始位、信号长度；

4）、ByteOrder                                                   表示信号的字节顺序：0代表Motorola格式，1代表Inter格式；

5）、 ValueType                                                  表示该信号的数值类型：+表示无符号数，-表示有符号数；

6）、Factor，Offset                                             表示因子，偏移量；这两个值用于信号的原始值与物理值之间的转换。

转换如下：物理值=原始值*因子+偏移量；

7）、Min|Max                                                      表示该信号的最小值和最大值，即指定了该信号值的范围；这两个值为double类型；

8）、Unit                                                             表示该信号的物理单位，为字符串类型；

9）、Receiver                                                     表示该信号的接收节点；若该信号没有指定的接收节点，则必须设置为” Vector__XXX”。

解释后输出的内容:
1,canid
2,canlength
3,pack
4,unpack
5,左移右移函数
6,struct

